DOM Clobbering
id属性やname属性を利用してJavaScriptにグローバル変数を作成し、JavaScript側の挙動を操作しXSSなどに発展させる攻撃 例えば以下のようなコードがあったとする
code:index.js
TODO
実際にGmailでDOM Clobberingを利用したXSSが発見された
<a>
HTMLAnchorElement.toStringがhrefを返すのを利用するテクニック
<a href="http://hoge" id="fuga">のとき、window.fugaを文字列として評価するとhttp://hogeを返す
Scheme部分は大文字から小文字になる仕様がある
CrewCTF 2023 - hex2dec
iframe srcdocテク
<iframe id="abc" srcdoc="<a id='def'>">とすると、window.abc.defはsrcdoc内の<a>タグを指す
iframeの中にさらにiframeを入れることで何段階もDOM Clobberingを重ねることができる
firefoxだと挙動が少し変わるときがある
m0lecon CTF teaser 2023 - Clobber the fox
未定義変数を定義したいときにも便利
TSG CTF 2023 - absurdresの非想定解
corctf 2022 - modernblog
React RouterへのDOM Clobbering
TODO
SECCON CTF 2022 Finals - light-note
TODO
SECCON CTF 2023 Quals - blink
TODO
TSG CTF 2023 - Brainfxxk Challenge
ツール
参考